<?php

class Pengguna_Dao{

	var $host;
	var $user;
	var $pass;
	var $dbnm;
	var $db;
	
	function __construct($host,$user,$pass,$dbnm){
		$this->host = $host;
		$this->user = $user;
		$this->pass = $pass;
		$this->dbnm = $dbnm;
	}
	
	function _connect(){
		$this->db = mysql_connect($this->host,$this->user,$this->pass);
		mysql_select_db($this->dbnm,$this->db);
	}
	
	function _close(){
		mysql_close($this->db);
	}

	function add(Pengguna $pengguna){
		
		$this->_connect();
			
		$sql = "INSERT INTO `gemuk`.`pengguna` 
			(
				`username`, `password`, `Id_pengguna`, `name`, `address`, `gender`, `city`, `age`, `email`, `phone`, 
				`other_info`, `secret_key`, `status`, `authority`, `photo`, `map_lock`
			)
			VALUES
			(
				'".$pengguna->username."',
				'".$pengguna->password."',
				NULL,
				'".$pengguna->name."',
				'".$pengguna->address."',
				'".$pengguna->gender."',
				'".$pengguna->city."',
				'".$pengguna->age."',
				'".$pengguna->email."',
				'".$pengguna->phone."',
				'".$pengguna->other_info."',
				'".$pengguna->secret_key."',
				'".$pengguna->status."',
				'".$pengguna->authority."',
				'".$pengguna->photo."',
				'".$pengguna->map_lock."'
			)
		";
		
		mysql_query($sql,$this->db);
		
		$pengguna->Id_pengguna = mysql_insert_id($this->db);
		
		$this->_close();	
	}
	
	function get($Id_pengguna){
	
		$this->_connect();
		
		$sql = "SELECT * FROM pengguna WHERE Id_pengguna = '".$Id_pengguna."'";
		
		$pengguna = false;
		
		$res = mysql_query($sql,$this->db);
		
		if(mysql_num_rows($res)){
		
			$row = mysql_fetch_assoc($res);
		
			$pengguna = new Pengguna();
			$pengguna->Id_pengguna  = $row['Id_pengguna'];
			$pengguna->username     = $row['username'];
			$pengguna->password     = $row['password'];
			$pengguna->name         = $row['name'];
			$pengguna->address      = $row['address'];
			$pengguna->gender       = $row['gender'];
			$pengguna->city         = $row['city'];
			$pengguna->age          = $row['age'];
			$pengguna->email        = $row['email'];
			$pengguna->phone        = $row['phone'];
			$pengguna->other_info   = $row['other_info'];
			$pengguna->secret_key   = $row['secret_key'];
			$pengguna->status       = $row['status'];
			$pengguna->authority    = $row['authority'];
			$pengguna->photo        = $row['photo'];
			$pengguna->map_lock     = $row['map_lock'];	
		}
		
		$this->_close();
		
		return $pengguna;
	}
	
	function get_via_username($session){
	
		$this->_connect();
		
		$sql = "SELECT * FROM pengguna WHERE username = '".$session->username."' and password = '".$session->password."'";
		
		$pengguna = false;
		
		$res = mysql_query($sql,$this->db);
		
		$result = mysql_query($sql);
		
		$num_rows = mysql_num_rows($result);
		
		if($num_rows >= 1){
			
			$row = mysql_fetch_assoc($res);
		
			$pengguna = new Pengguna();
			$pengguna->Id_pengguna  = $row['Id_pengguna'];
			$pengguna->username     = $row['username'];
			$pengguna->password     = $row['password'];
			$pengguna->name         = $row['name'];
			$pengguna->address      = $row['address'];
			$pengguna->gender       = $row['gender'];
			$pengguna->city         = $row['city'];
			$pengguna->age          = $row['age'];
			$pengguna->email        = $row['email'];
			$pengguna->phone        = $row['phone'];
			$pengguna->other_info   = $row['other_info'];
			$pengguna->secret_key   = $row['secret_key'];
			$pengguna->status       = $row['status'];
			$pengguna->authority    = $row['authority'];
			$pengguna->photo        = $row['photo'];
			$pengguna->map_lock     = $row['map_lock'];	
		}
		
		$this->_close();
		
		return $pengguna;
	}
	
	function get_all(){
	
		$this->_connect();
		
		$sql = "SELECT * FROM pengguna";
		
		$list_pengguna = array();
		
		$res = mysql_query($sql,$this->db);
		
		if(mysql_num_rows($res)){
			while($row = mysql_fetch_assoc($res)){
			
				$pengguna = new Pengguna();				
				$pengguna->Id_pengguna  = $row['Id_pengguna'];
				$pengguna->username     = $row['username'];
				$pengguna->password     = $row['password'];
				$pengguna->name         = $row['name'];
				$pengguna->address      = $row['address'];
				$pengguna->gender       = $row['gender'];
				$pengguna->city         = $row['city'];
				$pengguna->age          = $row['age'];
				$pengguna->email        = $row['email'];
				$pengguna->phone        = $row['phone'];
				$pengguna->other_info   = $row['other_info'];
				$pengguna->secret_key   = $row['secret_key'];
				$pengguna->status       = $row['status'];
				$pengguna->authority    = $row['authority'];
				$pengguna->photo        = $row['photo'];
				$pengguna->map_lock     = $row['map_lock'];	
				
				$list_pengguna[] = $pengguna;			
			}
		}
		
		$this->_close();
		
		return $list_pengguna;	
	}
	
	function get_all_by_status($status){
	
		$this->_connect();
		
		$sql = "SELECT * FROM pengguna WHERE status = '".$status."'";
		
		$list_pengguna = array();
		
		$res = mysql_query($sql,$this->db);
		
		if(mysql_num_rows($res)){
			while($row = mysql_fetch_assoc($res)){
			
				$pengguna = new Pengguna();				
				$pengguna->Id_pengguna  = $row['Id_pengguna'];
				$pengguna->username     = $row['username'];
				$pengguna->password     = $row['password'];
				$pengguna->name         = $row['name'];
				$pengguna->address      = $row['address'];
				$pengguna->gender       = $row['gender'];
				$pengguna->city         = $row['city'];
				$pengguna->age          = $row['age'];
				$pengguna->email        = $row['email'];
				$pengguna->phone        = $row['phone'];
				$pengguna->other_info   = $row['other_info'];
				$pengguna->secret_key   = $row['secret_key'];
				$pengguna->status       = $row['status'];
				$pengguna->authority    = $row['authority'];
				$pengguna->photo        = $row['photo'];
				$pengguna->map_lock     = $row['map_lock'];	
				
				$list_pengguna[] = $pengguna;			
			}
		}
		
		$this->_close();
		
		return $list_pengguna;	
	}
	
	function delete($Id_pengguna){
	
		$this->_connect();
		
		$sql = "DELETE FROM	`gemuk`.`pengguna` WHERE Id_pengguna = '".$Id_pengguna."'";
		
		mysql_query($sql,$this->db);
		
		$this->_close();
	}
	
	function update(Pengguna $pengguna){
		
		$this->_connect();
		
		$sql = "UPDATE `gemuk`.`pengguna` SET
				`username`      = '".$pengguna->username."',
				`password`      = '".$pengguna->password."',
				`name`          = '".$pengguna->name."',
				`address`       = '".$pengguna->address."',
				`gender`        = '".$pengguna->gender."',
				`city`          = '".$pengguna->city."',
				`age`           = '".$pengguna->age."',
				`email`         = '".$pengguna->email."',
				`phone`         = '".$pengguna->phone."',
				`other_info`    = '".$pengguna->other_info."',
				`secret_key`    = '".$pengguna->secret_key."',
				`status`        = '".$pengguna->status."',
				`authority`     = '".$pengguna->authority."',
				`photo`         = '".$pengguna->photo."',
				`map_lock`      = '".$pengguna->map_lock."'
			WHERE `pengguna`.`Id_pengguna` = ".$pengguna->Id_pengguna.";";
				
		mysql_query($sql,$this->db);
		
		$this->_close();
	}
	
	function update_pass($pengguna){
		
		$this->_connect();
		
		$sql = "UPDATE `gemuk`.`pengguna` SET
				`password`      = '".$pengguna->password."',
			WHERE `pengguna`.`username` = '".$pengguna->username."' AND `pengguna`.`secret_key` = '".$pengguna->secret_key."'";
		var_dump($sql);		
		mysql_query($sql,$this->db);
		
		$this->_close();
	}

	function unggah_photo(){
		
		$hasil = '';
		
		//proses pemeriksaan photo
		$lokasi_file    = $_FILES['fupload']['tmp_name'];
		$tipe_file      = $_FILES['fupload']['type'];
		$nama_file      = $_FILES['fupload']['name'];
		$nama_size      = $_FILES['fupload']['size'];
		$acak           = rand(000,999);
		$nama_file_unik = $acak.$nama_file;
		
		//Apabila ada photo yang diupload
		if (!empty($lokasi_file)){
		// Apabila tipe gambar bukan jpeg akan tampil peringatan
		if ($tipe_file != "image/jpeg" and $tipe_file != "image/pjpeg"){
			$hasil = "pendaftaran gagal karena photo harus berformat jpg";
		}else{
			if($nama_size>3000000){
				$hasil = "pendaftaran gagal karena photo terlalu besar";
			}else{
				//proses menyimpan pendaftaran pengunjung
				move_uploaded_file($lokasi_file,"upload/$nama_file_unik");
				$hasil = $nama_file_unik;
			}
		}
		}else{
			$hasil = "photo harus disertakan";
		}
		return $hasil;
	}
	
}

class Pengguna{

	var $Id_pengguna = '';
	var $username    = '';
	var $password    = '';
	var $name        = '';
	var $address     = '';
	var $gender      = '';
	var $city        = '';
	var $age         = '';
	var $email       = '';
	var $phone       = '';
	var $other_info  = '';
	var $secret_key  = '';
	var $status      = '';
	var $authority   = '';
	var $photo       = '';
	var $map_lock    = '';
	
}